<template>
  <el-form :inline="inline" :form="form" ref="form" label-width="100px">
    <el-form-item v-for="item in formLabel" :key="item.model" :label="item.label">
      <el-input v-if="!item.type" v-model="form[item.model]" :placeholder="'请输入' + item.label"></el-input>
      <el-select v-if="item.type === 'select'" v-model="form[item.model]" :placeholder="'请选择' + item.label">
        <el-option v-for="selectItem in item.opts" :key="selectItem.value" :label="selectItem.label" :value="selectItem.value"></el-option>
      </el-select>
      <el-switch v-if="item.type === 'switch'" v-model="form[item.model]"></el-switch>
      <el-date-picker v-if="item.type === 'date'" value-format="yyyy-MM-dd" v-model="form[item.model]" type="date" placeholder="选择日期"> </el-date-picker>
    </el-form-item>
    <el-form-item>
      <!-- 放入一个插槽的目的是 为了放入按钮，根据父页面需要可以传递不同的按钮 -->
      <slot></slot>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  props: {
    // 如果组件中定义的属性只是对传递参数的类型做约束 可以使用如下方式简写
    inline: Boolean, // 默认是false 不传递就是默认，在父组件中添加上inline 就是true了
    form: Object,
    formLabel: Array,
  },
}
</script>

<style lang="scss" scoped></style>
